/*
 *
 *    Copyright (c) 2022 Project CHIP Authors
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */

// THIS FILE IS GENERATED BY ZAP
// This file is generated from devices-Types.h.zapt

#pragma once

#include <app/data-model-provider/MetadataTypes.h>

#include "Ids.h"

namespace chip
{
namespace app
{
	namespace Device
	{
		namespace Type
		{

			constexpr DataModel::DeviceTypeEntry kDoorLock = {
				.deviceTypeId = kDoorLockDeviceTypeId,
				.deviceTypeRevision = kDoorLockDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kDoorLockController = {
				.deviceTypeId = kDoorLockControllerDeviceTypeId,
				.deviceTypeRevision = kDoorLockControllerDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kAggregator = {
				.deviceTypeId = kAggregatorDeviceTypeId,
				.deviceTypeRevision = kAggregatorDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kGenericSwitch = {
				.deviceTypeId = kGenericSwitchDeviceTypeId,
				.deviceTypeRevision = kGenericSwitchDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kPowerSource = {
				.deviceTypeId = kPowerSourceDeviceTypeId,
				.deviceTypeRevision = kPowerSourceDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kOtaRequestor = {
				.deviceTypeId = kOtaRequestorDeviceTypeId,
				.deviceTypeRevision = kOtaRequestorDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kBridgedNode = {
				.deviceTypeId = kBridgedNodeDeviceTypeId,
				.deviceTypeRevision = kBridgedNodeDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kOtaProvider = {
				.deviceTypeId = kOtaProviderDeviceTypeId,
				.deviceTypeRevision = kOtaProviderDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kContactSensor = {
				.deviceTypeId = kContactSensorDeviceTypeId,
				.deviceTypeRevision = kContactSensorDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kRootNode = {
				.deviceTypeId = kRootNodeDeviceTypeId,
				.deviceTypeRevision = kRootNodeDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kSolarPower = {
				.deviceTypeId = kSolarPowerDeviceTypeId,
				.deviceTypeRevision = kSolarPowerDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kBatteryStorage = {
				.deviceTypeId = kBatteryStorageDeviceTypeId,
				.deviceTypeRevision = kBatteryStorageDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kSecondaryNetworkInterface = {
				.deviceTypeId = kSecondaryNetworkInterfaceDeviceTypeId,
				.deviceTypeRevision = kSecondaryNetworkInterfaceDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kSpeaker = {
				.deviceTypeId = kSpeakerDeviceTypeId,
				.deviceTypeRevision = kSpeakerDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kCastingVideoPlayer = {
				.deviceTypeId = kCastingVideoPlayerDeviceTypeId,
				.deviceTypeRevision = kCastingVideoPlayerDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kContentApp = {
				.deviceTypeId = kContentAppDeviceTypeId,
				.deviceTypeRevision = kContentAppDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kModeSelect = {
				.deviceTypeId = kModeSelectDeviceTypeId,
				.deviceTypeRevision = kModeSelectDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kBasicVideoPlayer = {
				.deviceTypeId = kBasicVideoPlayerDeviceTypeId,
				.deviceTypeRevision = kBasicVideoPlayerDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kCastingVideoClient = {
				.deviceTypeId = kCastingVideoClientDeviceTypeId,
				.deviceTypeRevision = kCastingVideoClientDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kVideoRemoteControl = {
				.deviceTypeId = kVideoRemoteControlDeviceTypeId,
				.deviceTypeRevision = kVideoRemoteControlDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kFan = {
				.deviceTypeId = kFanDeviceTypeId,
				.deviceTypeRevision = kFanDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kAirQualitySensor = {
				.deviceTypeId = kAirQualitySensorDeviceTypeId,
				.deviceTypeRevision = kAirQualitySensorDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kAirPurifier = {
				.deviceTypeId = kAirPurifierDeviceTypeId,
				.deviceTypeRevision = kAirPurifierDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kWaterFreezeDetector = {
				.deviceTypeId = kWaterFreezeDetectorDeviceTypeId,
				.deviceTypeRevision = kWaterFreezeDetectorDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kWaterValve = {
				.deviceTypeId = kWaterValveDeviceTypeId,
				.deviceTypeRevision = kWaterValveDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kWaterLeakDetector = {
				.deviceTypeId = kWaterLeakDetectorDeviceTypeId,
				.deviceTypeRevision = kWaterLeakDetectorDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kRainSensor = {
				.deviceTypeId = kRainSensorDeviceTypeId,
				.deviceTypeRevision = kRainSensorDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kSoilSensor = {
				.deviceTypeId = kSoilSensorDeviceTypeId,
				.deviceTypeRevision = kSoilSensorDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kRefrigerator = {
				.deviceTypeId = kRefrigeratorDeviceTypeId,
				.deviceTypeRevision = kRefrigeratorDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kTemperatureControlledCabinet = {
				.deviceTypeId = kTemperatureControlledCabinetDeviceTypeId,
				.deviceTypeRevision = kTemperatureControlledCabinetDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kRoomAirConditioner = {
				.deviceTypeId = kRoomAirConditionerDeviceTypeId,
				.deviceTypeRevision = kRoomAirConditionerDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kLaundryWasher = {
				.deviceTypeId = kLaundryWasherDeviceTypeId,
				.deviceTypeRevision = kLaundryWasherDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kRoboticVacuumCleaner = {
				.deviceTypeId = kRoboticVacuumCleanerDeviceTypeId,
				.deviceTypeRevision = kRoboticVacuumCleanerDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kDishwasher = {
				.deviceTypeId = kDishwasherDeviceTypeId,
				.deviceTypeRevision = kDishwasherDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kSmokeCoAlarm = {
				.deviceTypeId = kSmokeCoAlarmDeviceTypeId,
				.deviceTypeRevision = kSmokeCoAlarmDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kCookSurface = {
				.deviceTypeId = kCookSurfaceDeviceTypeId,
				.deviceTypeRevision = kCookSurfaceDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kCooktop = {
				.deviceTypeId = kCooktopDeviceTypeId,
				.deviceTypeRevision = kCooktopDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kMicrowaveOven = {
				.deviceTypeId = kMicrowaveOvenDeviceTypeId,
				.deviceTypeRevision = kMicrowaveOvenDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kExtractorHood = {
				.deviceTypeId = kExtractorHoodDeviceTypeId,
				.deviceTypeRevision = kExtractorHoodDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kOven = {
				.deviceTypeId = kOvenDeviceTypeId,
				.deviceTypeRevision = kOvenDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kLaundryDryer = {
				.deviceTypeId = kLaundryDryerDeviceTypeId,
				.deviceTypeRevision = kLaundryDryerDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kNetworkInfrastructureManager = {
				.deviceTypeId = kNetworkInfrastructureManagerDeviceTypeId,
				.deviceTypeRevision = kNetworkInfrastructureManagerDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kThreadBorderRouter = {
				.deviceTypeId = kThreadBorderRouterDeviceTypeId,
				.deviceTypeRevision = kThreadBorderRouterDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kOnOffLight = {
				.deviceTypeId = kOnOffLightDeviceTypeId,
				.deviceTypeRevision = kOnOffLightDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kDimmableLight = {
				.deviceTypeId = kDimmableLightDeviceTypeId,
				.deviceTypeRevision = kDimmableLightDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kOnOffLightSwitch = {
				.deviceTypeId = kOnOffLightSwitchDeviceTypeId,
				.deviceTypeRevision = kOnOffLightSwitchDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kDimmerSwitch = {
				.deviceTypeId = kDimmerSwitchDeviceTypeId,
				.deviceTypeRevision = kDimmerSwitchDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kColorDimmerSwitch = {
				.deviceTypeId = kColorDimmerSwitchDeviceTypeId,
				.deviceTypeRevision = kColorDimmerSwitchDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kLightSensor = {
				.deviceTypeId = kLightSensorDeviceTypeId,
				.deviceTypeRevision = kLightSensorDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kOccupancySensor = {
				.deviceTypeId = kOccupancySensorDeviceTypeId,
				.deviceTypeRevision = kOccupancySensorDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kOnOffPlugInUnit = {
				.deviceTypeId = kOnOffPlugInUnitDeviceTypeId,
				.deviceTypeRevision = kOnOffPlugInUnitDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kDimmablePlugInUnit = {
				.deviceTypeId = kDimmablePlugInUnitDeviceTypeId,
				.deviceTypeRevision = kDimmablePlugInUnitDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kColorTemperatureLight = {
				.deviceTypeId = kColorTemperatureLightDeviceTypeId,
				.deviceTypeRevision = kColorTemperatureLightDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kExtendedColorLight = {
				.deviceTypeId = kExtendedColorLightDeviceTypeId,
				.deviceTypeRevision = kExtendedColorLightDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kMountedOnOffControl = {
				.deviceTypeId = kMountedOnOffControlDeviceTypeId,
				.deviceTypeRevision = kMountedOnOffControlDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kMountedDimmableLoadControl = {
				.deviceTypeId = kMountedDimmableLoadControlDeviceTypeId,
				.deviceTypeRevision = kMountedDimmableLoadControlDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kJointFabricAdministrator = {
				.deviceTypeId = kJointFabricAdministratorDeviceTypeId,
				.deviceTypeRevision = kJointFabricAdministratorDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kIntercom = {
				.deviceTypeId = kIntercomDeviceTypeId,
				.deviceTypeRevision = kIntercomDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kAudioDoorbell = {
				.deviceTypeId = kAudioDoorbellDeviceTypeId,
				.deviceTypeRevision = kAudioDoorbellDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kCamera = {
				.deviceTypeId = kCameraDeviceTypeId,
				.deviceTypeRevision = kCameraDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kVideoDoorbell = {
				.deviceTypeId = kVideoDoorbellDeviceTypeId,
				.deviceTypeRevision = kVideoDoorbellDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kFloodlightCamera = {
				.deviceTypeId = kFloodlightCameraDeviceTypeId,
				.deviceTypeRevision = kFloodlightCameraDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kSnapshotCamera = {
				.deviceTypeId = kSnapshotCameraDeviceTypeId,
				.deviceTypeRevision = kSnapshotCameraDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kChime = {
				.deviceTypeId = kChimeDeviceTypeId,
				.deviceTypeRevision = kChimeDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kCameraController = {
				.deviceTypeId = kCameraControllerDeviceTypeId,
				.deviceTypeRevision = kCameraControllerDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kDoorbell = {
				.deviceTypeId = kDoorbellDeviceTypeId,
				.deviceTypeRevision = kDoorbellDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kWindowCovering = {
				.deviceTypeId = kWindowCoveringDeviceTypeId,
				.deviceTypeRevision = kWindowCoveringDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kWindowCoveringController = {
				.deviceTypeId = kWindowCoveringControllerDeviceTypeId,
				.deviceTypeRevision = kWindowCoveringControllerDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kClosure = {
				.deviceTypeId = kClosureDeviceTypeId,
				.deviceTypeRevision = kClosureDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kClosurePanel = {
				.deviceTypeId = kClosurePanelDeviceTypeId,
				.deviceTypeRevision = kClosurePanelDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kClosureController = {
				.deviceTypeId = kClosureControllerDeviceTypeId,
				.deviceTypeRevision = kClosureControllerDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kThermostat = {
				.deviceTypeId = kThermostatDeviceTypeId,
				.deviceTypeRevision = kThermostatDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kTemperatureSensor = {
				.deviceTypeId = kTemperatureSensorDeviceTypeId,
				.deviceTypeRevision = kTemperatureSensorDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kPump = {
				.deviceTypeId = kPumpDeviceTypeId,
				.deviceTypeRevision = kPumpDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kPumpController = {
				.deviceTypeId = kPumpControllerDeviceTypeId,
				.deviceTypeRevision = kPumpControllerDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kPressureSensor = {
				.deviceTypeId = kPressureSensorDeviceTypeId,
				.deviceTypeRevision = kPressureSensorDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kFlowSensor = {
				.deviceTypeId = kFlowSensorDeviceTypeId,
				.deviceTypeRevision = kFlowSensorDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kHumiditySensor = {
				.deviceTypeId = kHumiditySensorDeviceTypeId,
				.deviceTypeRevision = kHumiditySensorDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kHeatPump = {
				.deviceTypeId = kHeatPumpDeviceTypeId,
				.deviceTypeRevision = kHeatPumpDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kThermostatController = {
				.deviceTypeId = kThermostatControllerDeviceTypeId,
				.deviceTypeRevision = kThermostatControllerDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kEvse = {
				.deviceTypeId = kEvseDeviceTypeId,
				.deviceTypeRevision = kEvseDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kDeviceEnergyManagement = {
				.deviceTypeId = kDeviceEnergyManagementDeviceTypeId,
				.deviceTypeRevision = kDeviceEnergyManagementDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kWaterHeater = {
				.deviceTypeId = kWaterHeaterDeviceTypeId,
				.deviceTypeRevision = kWaterHeaterDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kElectricalSensor = {
				.deviceTypeId = kElectricalSensorDeviceTypeId,
				.deviceTypeRevision = kElectricalSensorDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kElectricalUtilityMeter = {
				.deviceTypeId = kElectricalUtilityMeterDeviceTypeId,
				.deviceTypeRevision = kElectricalUtilityMeterDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kMeterReferencePoint = {
				.deviceTypeId = kMeterReferencePointDeviceTypeId,
				.deviceTypeRevision = kMeterReferencePointDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kElectricalEnergyTariff = {
				.deviceTypeId = kElectricalEnergyTariffDeviceTypeId,
				.deviceTypeRevision = kElectricalEnergyTariffDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kElectricalMeter = {
				.deviceTypeId = kElectricalMeterDeviceTypeId,
				.deviceTypeRevision = kElectricalMeterDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kControlBridge = {
				.deviceTypeId = kControlBridgeDeviceTypeId,
				.deviceTypeRevision = kControlBridgeDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kOnOffSensor = {
				.deviceTypeId = kOnOffSensorDeviceTypeId,
				.deviceTypeRevision = kOnOffSensorDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kNordicDevelopmentKit = {
				.deviceTypeId = kNordicDevelopmentKitDeviceTypeId,
				.deviceTypeRevision = kNordicDevelopmentKitDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kOrphanClusters = {
				.deviceTypeId = kOrphanClustersDeviceTypeId,
				.deviceTypeRevision = kOrphanClustersDeviceTypeRevision,
			};

			constexpr DataModel::DeviceTypeEntry kAllClustersAppServerExample = {
				.deviceTypeId = kAllClustersAppServerExampleDeviceTypeId,
				.deviceTypeRevision = kAllClustersAppServerExampleDeviceTypeRevision,
			};

		} // namespace Type
	} // namespace Device
} // namespace app
} // namespace chip
